package com.hyny.framework.platform.system.entity.vo;


import com.hyny.framework.platform.system.enums.MenuStatusEnum;
import com.hyny.framework.platform.system.enums.MenuTypeEnum;
import com.hyny.framework.base.enums.YesOrNoEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

@ApiModel("菜单列表")
@Data
public class MenuListVO {
    /**
     * 主键
     **/
    @ApiModelProperty(value="菜单ID",required=true,position=1)
    private String id;


    /**
     * 菜单名称
     **/
    @ApiModelProperty(value="菜单名称",required=true,position=2)
    private String title;


    /**
     * 字段权限id
     **/
    @ApiModelProperty(value="字段权限id",required=true,position=3)
    private Long fieldPowerId;


    /**
     * 组件地址
     **/
    @ApiModelProperty(value="组件地址",required=true,position=4)
    private String component;


    /**
     * 路由地址
     **/
    @ApiModelProperty(value="路由地址",required=true,position=5)
    private String path;


    /**
     * 菜单类型（M目录 C菜单 F按钮）
     **/
    @ApiModelProperty(value="菜单类型,对应枚举：MenuTypeEnum",required=true,notes = "com.hyny.framework.platform.system.enums.MenuTypeEnum",position=6)
    private MenuTypeEnum menuType;


    /**
     * 菜单状态（0显示 1隐藏）
     **/
    @ApiModelProperty(value="是否隐藏,对应枚举：YesOrNoEnum",notes = "com.hyny.framework.base.enums.YesOrNoEnum",position=7)
    private YesOrNoEnum visible;


    /**
     * 菜单状态（1正常 0停用）
     **/
    @ApiModelProperty(value="菜单状态,对应枚举：MenuStatusEnum",notes = "com.hyny.framework.platform.system.enums.MenuStatusEnum",position=8)
    private MenuStatusEnum status;


    /**
     * 权限标识
     **/
    @ApiModelProperty(value="权限标识",required=true,position=9)
    private String permissions;


    /**
     * 菜单图标
     **/
    @ApiModelProperty(value="菜单图标",required=true,position=10)
    private String icon;


    /**
     * 显示顺序
     **/
    @ApiModelProperty(value="显示顺序",required=true,position=11)
    private Long sort;


    @ApiModelProperty(value="子级菜单",required=true,position=12)
    private List<MenuListVO> childMenuListVOS;

    /**
     * 父菜单ID
     **/
    @ApiModelProperty(hidden = true)
    private Long parentId;

}
